04-RTOS与任务设计 MOC
Map of Content —— FreeRTOS/RT-Thread 任务调度、队列信号量、栈管理、低功耗与并发竞态。
⭐ 高价值笔记
| 笔记 | 日期 | 👍 |
|---|---|---|
| 【RTOS 启动设计】为什么推荐在启动任务中初始化外设?这 3 个优势你必须知道 | 2025-05-08 | 6 |
| :RTOS怎么学 :实战项目 | 2025-04-17 | 6 |
| RTOS哪4个地方的源码要看,RTOS要学到什么程度才能找工作 | 2025-04-13 | 5 |
| 【重要嵌入式概念】嵌入式里面什么是任务执行jitter | 2026-03-24 | 2 |
| 老师,协作的话其实我们裸机的调度就是协作吧?协程,进程,线程这三个不太理解 | 2024-09-22 | 2 |
| 做嵌入式开发,低功耗设计几乎绕不开;带RTOS 的项目尤其如此 | 2026-07-23 | 1 |
| 释放信号量任务调度过程(taskA:2ms、taskB:阻塞、idle task | 2024-09-07 | 1 |
| RTOS为什么出现 | 2024-09-21 | 0 |
🧭 相关专题提炼
- FreeRTOS任务设计与常见坑(栈、优先级、队列、中断)
- RTOS调度机制:抢占、时间片与上下文切换
- 并发与竞态:从RTOS临界区到Linux内核同步
- 从裸机到RTOS到Linux:嵌入式进阶路径与方向选择
📖 精选长文
| 笔记 | 日期 | 👍 |
|---|---|---|
| FreeRTOS 中断与临界区问答合集 | 2026-09-04 | |
| FreeRTOS 任务与调度问答合集 | 2026-09-04 | |
| RTOS为什么出现 | 2024-09-21 | 0 |
| 【重要嵌入式概念】嵌入式里面什么是任务执行jitter | 2026-03-24 | 2 |
| 以下两个问题我找了一天,没找出来因为什么,后面发现是自己看文档不仔细才让我浪费这么久 | 2024-05-22 | 0 |
| 做嵌入式开发,低功耗设计几乎绕不开;带RTOS 的项目尤其如此 | 2026-07-23 | 1 |
| 老师,协作的话其实我们裸机的调度就是协作吧?协程,进程,线程这三个不太理解 | 2024-09-22 | 2 |
| 队列与任务通信问答合集 | 2026-09-04 |
🔍 溯源问答
本目录下中短问答原帖(600B-3KB),默认不展开,仅在问答总集中引用时回溯。
如需查阅,按需进入「溯源层/」子目录。
- 16:问题:就是什么样情况下需
- 1、Arm架构的中断优先级 正常配置 最大值就是15 这个是由芯片架构决定
- 1、如何调试发现任务栈不够的问
- 3. 也看了RT-Thread,它的组件非常棒
- AHT21这个handler这个策略效率好高
- FREERTOS里ReadyTasksLists里每个元素都相当于同优先级的任务组成
- FreeRTOS中互斥锁和信号
- FreeRTOS中断优先级
- FreeRTOS线程优先级与 ARM 中断管理深度解析
- HAL_Delay(100);
- OS平台化时,osal那部分只是对freertos包装了一下
- Q: 使用CUBEMX配置硬件在正常开发流程中会经常用到吗:是只在测试某个单元的时候
- Q: 在 RTOS 中,变量前面什么时候要加 const
- Q:在使用osDelay() 和osDelayUntil()时如果有高优先级任务占用
- RTOS优先级规划 在RTO
- RTOS哪4个地方的源码要看,RTOS要学到什么程度才能找工作
- freertos初始化栈帧的时候,为什么要 cm3 把函数入口地址的最低位清0
- rtos是实时操作系统 win和linux难道不
- svc是个指令,会产生svc中断悬起,svc的中断优先级很高
- taskENTER_CRITICA里会将uxCriticalNesting++
- xTaskCreate(LcdPrintTask, :task1:, 128,
- 【RTOS 启动设计】为什么推荐在启动任务中初始化外设?这 3 个优势你必须知道
- 一般控制任务启动顺序要怎么做呢?我现在把很多初始化都放在任务函数的循环之前
- 两个线程,一个生产,一个消费,能够一个缓冲区,不加锁解决吗:
- 中断中不要进行任务调度
- 为什么Freertos时基用systick,然后HAL的时基要用另一个定时器
- 为什么Malloc 不适合在时间敏感的地方使用
- 二值信号量主要是线程间通信吗?互斥信号量用在什么时候
- 任务之间通信,需要发不定长的信息,目前用什么机制实现比较好:
- 优秀总结: 老师,之前我在初学
- 优秀总结: 老师,是不是hal
- 你需要把这个变量做一个访问的接
- 先学MCU➕RTOS
- 共享内存的操作,如果有相同接口,一定要一定要加临界区
- 关于Notify的进入前清和离
- 关于抢占调度模式(时间片调度不
- 关于邮箱? 邮箱最主要的特点就
- 动态静态创建任务: 你动态创
- 各位老师好,请教一个问题:
- 在FreeRTOS中,如果想在高优先级的中断(freertos不能管理的中断中)内使
- 在FreeRTOS中,当任务1运行了0.5ms时释放信号量
- 在freertos任务中跑刷屏程序,遇到了一个问题,任务延时时间太短的情况下
- 在调试 RTOS的PendSV、任务切换、Systick 这种“内部中断事件”时
- 多核程序开发,考虑更多的是竞态,因为很可能会乱序执行各个线程
- 大佬们,stm32裸机如何实时查看堆栈的使用情况,有时候分配失败又不知道要分配多少
- 大佬好,想请教一下关于多任务下按键处理有没有比较好的设计思想
- 大佬好,我在一家仪器仪表公司工作了十多年了,之前一直是用裸机开发
- 如何实现消息队列的广播,一发多收,并且能保证每-个task都能收到完整消息:比如bu
- 如果freertos中创建的任务没有死循环,会发生什么呢:
- 如果系统开始运行后,A任务运行了0.5S就DELAY阻塞
- 如果这个中断的优先级小于五,那
- 当Freertos以抢占式调度运行时,任务B(优先级低)正在运行,然后
- 当然会产生,而且要设计算法去避
- 怎么估算任务栈的大小?根据任务中创建变量的多少
- 想问问这个EXITI line0为什么设置为5,就是FreeRTOS可屏蔽中断
- 我们在使用队列会存在两次数据拷贝,xQueueSend(...)发一次,
- 我用cubemx配了一个只带freertos没有配置其他外设的工程
- 抢占式调度和协作式调度 当你
- 抢占模式下,每个systick 都会去判断有没有高优先级任务就绪,时间片是时间片
- 挂起任务会直接从delay导致的阻塞直接转到就绪
- 按键功能所在任务在实际工程该怎
- 接口耦合度的评定: 1.功能边
- 提问:lvgl内部实际上是一个时间片轮询调度,那我用lv的软件定时器
- 是时候终结用CPU+状态机去写
- 状态机中最常用的一种方法:Switch Cace法
- 环形缓冲区和队列,在生产者和消费者线程中,如何应用
- 线程的本质是什么? 线程只和操
- 老师们,想不通,临界区和互斥锁是一样的效果么?什么时候用临界区 什么时候用互斥锁
- 老师我有个问题: 有三个任务,
- 老师,1.以我定义的按键设备结构体为例子,这个结构体成员很多
- 老师,ADC注入组和规则组的区
- 老师,Core和Hal_Driver层的裸机代码是原材料,os是升级者
- 老师,Freertos和RT-Thread选哪个
- 老师,RTOS中,线程在memcpy()的时候,如果被中断切走或者时间片用完
- 老师,key_task的任务栈空间明明设置很大
- 老师,为什么消费者线程优先级小于生产者线程
- 老师,低于configMAX_SYSCALL_INTERRUPT_PRIORITY优
- 老师,在FREERTOS进行上下文切换的时候
- 老师,如果FreeRTOS是抢占式时间片调度模式下
- 老师,我在ADC_DMA连续转换的时候遇到问题
- 老师,我现在工程里面任务与任务现在的通信都是通过消息队列来发送
- 老师,我看freertos pendsv中断和svc中断都用了。第一次用svc
- 老师,我说的对吗? 使用RT
- 老师,看过DMA专题后,我感觉DMA的作用就是:虽然我们stm32单片机是单核
- 老师,芯片有几级堆栈的概念吗?
- 老师,请问这个消息队列发送和接受消息时。是不是从任务栈内存中的一个变量拷贝到消息队列
- 老师,还是有点没搞懂,systick优先级低于中断
- 老师,这个结构体是user线程和handler线程通讯的队列的队列传输单元
- 老师,队列函数中带ISR&不带ISR的有何区别,各自适用于什么使用场景
- 老师: 使用互斥信号量,低优先
- 老师:如果freertos需要创建一个频率高于1khz的任务(一般rtos时基就1m
- 请问消息缓冲区是什么东西 ?和消息队列有什么区别
- 请问,进入临界区期间,能触发硬
- 这个去看各个RTOS任务调度附
- 这种就没必要去学了,高手都是趋
- 这里面应该是防止重复包含的宏在
- 释放信号量任务调度过程(taskA:2ms、taskB:阻塞、idle task
- 错误代码范例: if(50:
- 问: 我们会为每一个器件或者设
- 队列中 item_size和queue_size的区别
- 零拷贝时,对于变量生命周期的思
- :RTOS怎么学 :实战项目
🗂️ 全部笔记(含精选+溯源)
- 04-RTOS与任务设计 MOC
- 16:问题:就是什么样情况下需
- 1、Arm架构的中断优先级 正常配置 最大值就是15 这个是由芯片架构决定
- 1、如何调试发现任务栈不够的问
- 3. 也看了RT-Thread,它的组件非常棒
- AHT21这个handler这个策略效率好高
- FREERTOS里ReadyTasksLists里每个元素都相当于同优先级的任务组成
- FreeRTOS 中断与临界区问答合集
- FreeRTOS 任务与调度问答合集
- FreeRTOS中互斥锁和信号
- FreeRTOS中断优先级
- FreeRTOS线程优先级与 ARM 中断管理深度解析
- HAL_Delay(100);
- OS平台化时,osal那部分只是对freertos包装了一下
- Q: 使用CUBEMX配置硬件在正常开发流程中会经常用到吗:是只在测试某个单元的时候
- Q: 在 RTOS 中,变量前面什么时候要加 const
- Q:在使用osDelay() 和osDelayUntil()时如果有高优先级任务占用
- RTOS为什么出现
- RTOS任务设计问答总集
- RTOS优先级规划 在RTO
- RTOS哪4个地方的源码要看,RTOS要学到什么程度才能找工作
- freertos初始化栈帧的时候,为什么要 cm3 把函数入口地址的最低位清0
- rtos是实时操作系统 win和linux难道不
- svc是个指令,会产生svc中断悬起,svc的中断优先级很高
- taskENTER_CRITICA里会将uxCriticalNesting++
- xTaskCreate(LcdPrintTask, :task1:, 128,
- 【RTOS 启动设计】为什么推荐在启动任务中初始化外设?这 3 个优势你必须知道
- 【重要嵌入式概念】嵌入式里面什么是任务执行jitter
- 一般控制任务启动顺序要怎么做呢?我现在把很多初始化都放在任务函数的循环之前
- 两个线程,一个生产,一个消费,能够一个缓冲区,不加锁解决吗:
- 中断中不要进行任务调度
- 为什么Freertos时基用systick,然后HAL的时基要用另一个定时器
- 为什么Malloc 不适合在时间敏感的地方使用
- 二值信号量主要是线程间通信吗?互斥信号量用在什么时候
- 以下两个问题我找了一天,没找出来因为什么,后面发现是自己看文档不仔细才让我浪费这么久
- 任务之间通信,需要发不定长的信息,目前用什么机制实现比较好:
- 优秀总结: 老师,之前我在初学
- 优秀总结: 老师,是不是hal
- 你需要把这个变量做一个访问的接
- 做嵌入式开发,低功耗设计几乎绕不开;带RTOS 的项目尤其如此
- 先学MCU➕RTOS
- 共享内存的操作,如果有相同接口,一定要一定要加临界区
- 关于Notify的进入前清和离
- 关于抢占调度模式(时间片调度不
- 关于邮箱? 邮箱最主要的特点就
- 动态静态创建任务: 你动态创
- 各位老师好,请教一个问题:
- 在FreeRTOS中,如果想在高优先级的中断(freertos不能管理的中断中)内使
- 在FreeRTOS中,当任务1运行了0.5ms时释放信号量
- 在freertos任务中跑刷屏程序,遇到了一个问题,任务延时时间太短的情况下
- 在调试 RTOS的PendSV、任务切换、Systick 这种“内部中断事件”时
- 多核程序开发,考虑更多的是竞态,因为很可能会乱序执行各个线程
- 大佬们,stm32裸机如何实时查看堆栈的使用情况,有时候分配失败又不知道要分配多少
- 大佬好,想请教一下关于多任务下按键处理有没有比较好的设计思想
- 大佬好,我在一家仪器仪表公司工作了十多年了,之前一直是用裸机开发
- 如何实现消息队列的广播,一发多收,并且能保证每-个task都能收到完整消息:比如bu
- 如果freertos中创建的任务没有死循环,会发生什么呢:
- 如果系统开始运行后,A任务运行了0.5S就DELAY阻塞
- 如果这个中断的优先级小于五,那
- 当Freertos以抢占式调度运行时,任务B(优先级低)正在运行,然后
- 当然会产生,而且要设计算法去避
- 怎么估算任务栈的大小?根据任务中创建变量的多少
- 想问问这个EXITI line0为什么设置为5,就是FreeRTOS可屏蔽中断
- 我们在使用队列会存在两次数据拷贝,xQueueSend(...)发一次,
- 我用cubemx配了一个只带freertos没有配置其他外设的工程
- 抢占式调度和协作式调度 当你
- 抢占模式下,每个systick 都会去判断有没有高优先级任务就绪,时间片是时间片
- 挂起任务会直接从delay导致的阻塞直接转到就绪
- 按键功能所在任务在实际工程该怎
- 接口耦合度的评定: 1.功能边
- 提问:lvgl内部实际上是一个时间片轮询调度,那我用lv的软件定时器
- 是时候终结用CPU+状态机去写
- 状态机中最常用的一种方法:Switch Cace法
- 环形缓冲区和队列,在生产者和消费者线程中,如何应用
- 线程的本质是什么? 线程只和操
- 老师们,想不通,临界区和互斥锁是一样的效果么?什么时候用临界区 什么时候用互斥锁
- 老师我有个问题: 有三个任务,
- 老师,1.以我定义的按键设备结构体为例子,这个结构体成员很多
- 老师,ADC注入组和规则组的区
- 老师,Core和Hal_Driver层的裸机代码是原材料,os是升级者
- 老师,Freertos和RT-Thread选哪个
- 老师,RTOS中,线程在memcpy()的时候,如果被中断切走或者时间片用完
- 老师,key_task的任务栈空间明明设置很大
- 老师,为什么消费者线程优先级小于生产者线程
- 老师,低于configMAX_SYSCALL_INTERRUPT_PRIORITY优
- 老师,协作的话其实我们裸机的调度就是协作吧?协程,进程,线程这三个不太理解
- 老师,在FREERTOS进行上下文切换的时候
- 老师,如果FreeRTOS是抢占式时间片调度模式下
- 老师,我在ADC_DMA连续转换的时候遇到问题
- 老师,我现在工程里面任务与任务现在的通信都是通过消息队列来发送
- 老师,我看freertos pendsv中断和svc中断都用了。第一次用svc
- 老师,我说的对吗? 使用RT
- 老师,看过DMA专题后,我感觉DMA的作用就是:虽然我们stm32单片机是单核
- 老师,芯片有几级堆栈的概念吗?
- 老师,请问这个消息队列发送和接受消息时。是不是从任务栈内存中的一个变量拷贝到消息队列
- 老师,还是有点没搞懂,systick优先级低于中断
- 老师,这个结构体是user线程和handler线程通讯的队列的队列传输单元
- 老师,队列函数中带ISR&不带ISR的有何区别,各自适用于什么使用场景
- 老师: 使用互斥信号量,低优先
- 老师:如果freertos需要创建一个频率高于1khz的任务(一般rtos时基就1m
- 请问消息缓冲区是什么东西 ?和消息队列有什么区别
- 请问,进入临界区期间,能触发硬
- 这个去看各个RTOS任务调度附
- 这种就没必要去学了,高手都是趋
- 这里面应该是防止重复包含的宏在
- 释放信号量任务调度过程(taskA:2ms、taskB:阻塞、idle task
- 错误代码范例: if(50:
- 问: 我们会为每一个器件或者设
- 队列与任务通信问答合集
- 队列中 item_size和queue_size的区别
- 零拷贝时,对于变量生命周期的思
- :RTOS怎么学 :实战项目